package com.thirteen.app.service;

import com.thirteen.app.dto.AnswerQuestionDto;
import com.thirteen.app.dto.QuestionAnswerDto;
import com.thirteen.app.dto.WrongQuestions;
import com.thirteen.app.entity.Question;

import java.util.List;
import java.util.Map;

/**
 * 题目(Question)表服务接口
 *
 * @author 郑清林
 * @since 2021-09-06 10:29:42
 */
public interface QuestionService {

    /**
     * 通过ID查询单条数据
     *
     * @param questionid 主键
     * @return 实例对象
     */
    Question queryById(Integer questionid);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Question> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param question 实例对象
     * @return 实例对象
     */
    Question insert(Question question, List<AnswerQuestionDto> answers);

    /**
     * 修改数据
     *
     * @param question 实例对象
     * @return 实例对象
     */
    Question update(Question question);

    /**
     * 通过主键删除数据
     *
     * @param questionid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer questionid);


    //分页查询
    Map<String, Object> getquestionPageList(Integer pageIndex,
                                            Integer pageSize,
                                            Integer questionType,
                                            Integer repositoryId,
                                            Integer questionId);

    //统计查询问题数量
    int questionCount(Integer questionType, Integer repositoryId, Integer questionId);

    //删除题目
    int deleteQuestion(Integer questionId, Integer repositoryId);

    List<QuestionAnswerDto> getQuestionList(Integer id, Integer mode, Integer[] type, Integer userId);

    List<WrongQuestions> selectAllWrongQuestions(Integer examRecordId,String content);

    int deleteWrongQu(Integer questionId, Integer examRecordId);

}
